Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

724
Views
Pase el rol de IAM de AWS CodeBuild dentro del contenedor de Docker [no se pueden ubicar las credenciales]

El rol configurado en el proyecto CodeBuild funciona bien con el entorno de tiempo de ejecución, pero no funciona cuando ejecutamos un comando desde dentro del contenedor, dice "no se pueden ubicar las credenciales".
Déjame saber cómo podemos usar el papel fuera de la caja dentro del contenedor.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Puede utilizar la fuente de credenciales "EcsContainer" para asumir el rol sin problemas sin tener que exportar nuevas credenciales en su buildspec.yml.

credential_source: el proveedor de credenciales que se usará para obtener las credenciales para la llamada inicial de asumir el rol. Este parámetro no se puede proporcionar junto con source_profile. Los valores válidos son:

  • Entorno para extraer las credenciales de origen de las variables de entorno.
  • Ec2InstanceMetadata para usar el rol de instancia EC2 como credenciales de origen.
  • EcsContainer para usar las credenciales del contenedor de ECS como las credenciales de origen.

De: https://docs.aws.amazon.com/cli/latest/topic/config-vars.html

Pasos:

Paso 0: cree un nuevo rol 'arn:aws:iam::0000000000:role/RoleToBeAssumed' y adjunte las políticas requeridas para proporcionar el permiso requerido para los comandos que está ejecutando durante la compilación.

Paso 1: agregue los permisos sts:assumeRole a su rol de servicio de CodeBuild. Aquí hay una política de muestra:

 { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor1", "Effect": "Allow", "Action": "sts:*", "Resource": "arn:aws:iam::0000000000:role/RoleToBeAssumed" } ] }

Paso 2: configure su contenedor de compilación para usar los metadatos de la credencial como fuente para asumir el rol. Aquí hay un ejemplo de especificación de compilación:

 version: 0.2 phases: install: runtime-versions: nodejs: 8 commands: - aws sts get-caller-identity - mkdir ~/.aws/ && touch ~/.aws/config - echo "[profile buildprofile]" > ~/.aws/config - echo "role_arn = arn:aws:iam::0000000000:role/RoleToBeAssumed" >> ~/.aws/config - echo "credential_source = EcsContainer" >> ~/.aws/config - aws sts get-caller-identity --profile buildprofile
over 4 years ago · Santiago Trujillo Report

0

Si necesita ejecutar un contenedor Docker en un entorno de compilación y el contenedor requiere credenciales de AWS, debe transferir las credenciales del entorno de compilación al contenedor.

 docker run -e AWS_DEFAULT_REGION -e AWS_CONTAINER_CREDENTIALS_RELATIVE_URI your-image-tag aws s3 ls

https://docs.aws.amazon.com/codebuild/latest/userguide/troubleshooting.html#troubleshooting-versiones

over 4 years ago · Santiago Trujillo Report

0

Otra forma es asumir el rol manualmente y exportar los tokens de autenticación. Asegúrese de tener disponible ASSUME_ROLE_ARN como variable de entorno:

 commands: - TEMP_ROLE=`aws sts assume-role --role-arn $ASSUME_ROLE_ARN --role-session-name temp` - export TEMP_ROLE - export AWS_ACCESS_KEY_ID=$(echo "${TEMP_ROLE}" | jq -r '.Credentials.AccessKeyId') - export AWS_SECRET_ACCESS_KEY=$(echo "${TEMP_ROLE}" | jq -r '.Credentials.SecretAccessKey') - export AWS_SESSION_TOKEN=$(echo "${TEMP_ROLE}" | jq -r '.Credentials.SessionToken') - docker push $ECR_IMAGE_URL:$IMAGE_TAG
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!